package com.bestcem.xm.openplatform.grpc.client.dto;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Data
@NoArgsConstructor
public class DeliverDto {

    private String id;

    /**
     * 组织ID
     */
    @JSONField(name = "org_id")
    private String orgId;

    /**
     * 编号
     */
    @JSONField(name = "code")
    private String code;

    /**
     * 名称
     */
    @JSONField(name = "name")
    private String name;

    /**
     * 推送类型
     */
    @JSONField(name = "ttype")
    private Integer ttype;

    /**
     * 状态
     */
    @JSONField(name = "status")
    private Integer status;

    /**
     * 渠道
     */
    @JSONField(name = "channel")
    private Integer channel;

    /**
     * 场景
     */
    @JSONField(name = "scenes")
    private Integer scenes;

    /**
     * 投放链接是否生效，为False生效，为True失效
     */
    @JSONField(name = "disable")
    private Integer disable;

    /**
     * 描述
     */
    @JSONField(name = "reason")
    private String reason;

    /**
     * 投放开始时间
     */
    @JSONField(name = "starttime")
    private LocalDateTime starttime;

    /**
     * 投放结束时间
     */
    @JSONField(name = "finishtime")
    private LocalDateTime finishtime;

    /**
     * 防打扰投放时间段设置
     */
    @JSONField(name = "delay_time")
    private String delayTime;

    /**
     * delay_failed_ttype
     */
    @JSONField(name = "delay_failed_ttype")
    private Integer delayFailedTtype;

    /**
     * 防打扰后继续投放时间
     */
    @JSONField(name = "delay_failed_time")
    private String delayFailedTime;

    /**
     * 添加奖励状态
     */
    @JSONField(name = "award_use_type")
    private Integer awardUseType;

    /**
     * 奖励id
     */
    @JSONField(name = "award_id")
    private String awardId;

    @JSONField(name = "created_id")
    private String createdId;

    /**
     * 是否可以答题。True 可以答题， False 不可以答题
     */
    @JSONField(name = "enable_respondent")
    private Integer enableRespondent;

    /**
     * 具体投放时间
     */
    @JSONField(name = "deliver_time")
    private LocalDateTime deliverTime;

    /**
     * 使用时间戳（微秒级）保存修改的版本，异步任务开始时会校验时间戳，版本更新，直接退出任务
     */
    @JSONField(name = "version")
    private Long version;
}
